package com.lsx143.realtime.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 工具类
 */
public class MyUtil {
    /**
     * 将iterable转为集合
     *
     * @param it  待转换的iterable
     * @param <T> 集合类型
     * @return 转换后的集合
     */
    public static <T> List<T> toList(Iterable<T> it) {
        List<T> list = new ArrayList<>();
        for (T t : it) {
            list.add(t);
        }
        return list;
    }

    /**
     * 将日期以时间戳时间返回
     *
     * @param date   日期
     * @param format 日期格式化格式
     * @return 时间戳
     */
    public static Long toTs(String date, String... format) {
        SimpleDateFormat sdf;
        if (format == null || format.length == 0) {
            sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        } else {
            sdf = new SimpleDateFormat(format[0]);
        }
        try {
            return sdf.parse(date).getTime();
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 以指定格式返回时间字符串
     *
     * @param ts     时间戳
     * @param format 时间格式化格式
     * @return 字符串格式的时间
     */
    public static String toDateTime(Long ts, String... format) {
        SimpleDateFormat sdf;
        if (format == null || format.length == 0) {
            sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        } else {
            sdf = new SimpleDateFormat(format[0]);
        }
        return sdf.format(new Date(ts));
    }
}
